I2C (Inter Integrated Circuit) is a bus used to transfer data flow among ICs. More wire connections and decoding circuits are needed with ICs due to a more complex parallel structure taken by the conventional bus. A bus with more wire connections also yields stronger electromagnetic interference. The double-line serial bus I2C is a solution for the above problems.
The I2C is used in systems comprising micro-controllers and other peripherals, and in systems with multi-masters, because the I2C does not require complex decode circuits and Transmission Control Protocol, and because of its software planning ability, removing and increasing ICs doesn't influence the each element in the original system. Thus debugging and maintenance are very easy.
However, in order for different I2C elements to connect with each other, especially when they are used in a system with a single mainframe and multiple I2C elements, they must be recognizable. At present, the method for identifying different I2C elements is to use addressing. But, a multiplexer must be used to do switching if the addresses of the different I2C elements are the same. This multiplexer is also one kind of I2C element.
As FIG. 1 shows, an I2C multiplexer 20 is currently used to multiplex an I2C main controller unit 10 and other I2C elements (I2C element 30, I2C element 40 and I2C element 50). The I2C main controller unit 10 can also be connected to I2C elements 60 and 70. More I2C elements can be connected to the I2C main controller unit by switching the I2C multiplexer 20.
However, for unknown reasons, a short circuit occurs in the connections between the I2C main controller unit 10, the I2C multiplexer 20, and the I2C elements when a short circuit occurs in an I2C channel chosen by the main I2C main controller unit 10 through the I2C mutilplexer 20. That is to say, the I2C main controller unit 10 cannot control the I2C elements connected with the I2C multiplexer 20 through the bus A of the I2C multiplexer 20. Therefore, a solution for avoiding the above problem is needed.